#pragma once
#include<stdio.h>
#include<stdbool.h>
#include<assert.h>
#include<stdlib.h>

typedef int DataType;
typedef struct heap
{
	DataType* a;
	int size;
	int capacity;
}HP;

void HeapInit(HP* hpp);
void Destroy(HP* hpp);
void Swap(DataType* a1, DataType* a2);
void AdjustUp(DataType* a, int child);
void AdjustDown(DataType* a, int n, int parent);
void HeapPush(HP* hpp, DataType x);
void HeapPop(HP* hpp);
DataType HeapTop(HP* hpp);
void HeapPrint(HP* php);
bool HeapEmpty(HP* php);
